﻿using Acaweb.Data.Contracts;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;
using Acaweb.Componentes.Contracts;
using System.Collections.Generic;
using System.Linq;

namespace Acaweb.Componentes
{
    public class PensumService : BaseService, IPensumService
    {
        private IPensumDao _PensumDao;
        private IHistorialEstudiantesDao _HistorialEstudiantesDao;
        private IEstudiantesDao _EstudiantesDao;

        public IEstudiantesDao EstudiantesDao
        {
            get { return _EstudiantesDao; }
            set { _EstudiantesDao = value; }
        }

        public IHistorialEstudiantesDao HistorialEstudiantesDao
        {
            get { return _HistorialEstudiantesDao; }
            set { _HistorialEstudiantesDao = value; }
        }

        public IPensumDao PensumDao
        {
            get { return _PensumDao; }
            set { _PensumDao = value; }
        }

       public IList<Pensum> GetAll()
        {
            return PensumDao.GetAll();
        }

        public Pensum GetById(PensumPk Id)
        {
            return PensumDao.GetById(Id);
        }

        public IList<Pensum> GetByPlanEstudio(int CodigoPlan)
        {
            return PensumDao.GetByPlanEstudio(CodigoPlan);
        }

        public IList<Pensum> GetByMateria(int CodigoMateria)
        {
            return PensumDao.GetByMateria(CodigoMateria);
        }


        public IList<Pensum> GetCurrentPensum(int CodigoEstudiante)
        {
            int CodigoPensum = HistorialEstudiantesDao.GetByEstudiante(CodigoEstudiante).Last().CodigoPensum;
            int PlanEstudio = EstudiantesDao.GetByCodigoEstudiante(CodigoEstudiante).CodigoPlan;

            return PensumDao.GetByCodigoPensum(CodigoPensum, PlanEstudio);
        }
    }
}
